package org.bw.bookstore.book.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.bw.bookstore.common.entity.TbUserInfo;
import org.bw.bookstore.common.utils.ResponseResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 会员接口
 * @Author: 范欣宜
 * @Date: 2020/10/20 8:50
 **/
public interface MemberService extends IService<TbUserInfo> {


    /**
     * TODO 范欣宜 刷脸验证
     * 根据用户的面包照片url进行刷脸验证
     * @Author: 范欣宜
     * @Date: 2020/10/20 8:52
     * @param humanFace: 用户信息(面部照片url)
     * @return: com.bw.wisdom_bookstore.entity.ResponseResult
     **/
    public ResponseResult faceVerify(String humanFace);


    /**
     * TODO 范欣宜 扫码验证
     * @Author: 范欣宜
     * @Date: 2020/10/20 8:54
     * @param mobile: 手机号
     * @return: com.bw.common.utils.ResponseResult
     **/
    public ResponseResult scanCodeVerify(String mobile);

//    /**
//     * TODO 范欣宜 扫脸注册
//     * 需要提供用户的人脸信息进行注册
//     * @Author: 范欣宜
//     * @Date: 2020/10/20 8:56
//     * @param userInfo: 用户信息
//     * @return: com.bw.wisdom_bookstore.entity.ResponseResult
//     **/
//    public ResponseResult faceRegister(UserInfo userInfo);

    /**
     * TODO 范欣宜 手机号注册
     * @Author: 范欣宜
     * @Date: 2020/10/21 19:42
     * @param mobile: 手机号
     * @param verification: 验证码
     * @return: com.bw.common.utils.ResponseResult
     **/
    public ResponseResult phoneRegister(String mobile,String verification);


    /**
     * TODO 范欣宜 手机号登录
     * @Author: 范欣宜
     * @Date: 2020/10/21 19:27
     * @param mobile: 手机号
     * @param verification: 验证码
     * @return: com.bw.common.utils.ResponseResult
     **/
    public ResponseResult phoneLogin(String mobile,String verification);

    /**
     * TODO 范欣宜 获取验证码
     * @Author: 范欣宜
     * @Date: 2020/10/24 15:33
     * @param mobile: 手机号
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult getVerification(String mobile);

    /**
     * TODO 范欣宜 生成二维码
     * @Author: 范欣宜
     * @Date: 2020/10/24 15:33
     * @param mobile: 手机号
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult generateCode(String mobile);

    /**
     * TODO 范欣宜 解析二维码
     * @Author: 范欣宜
     * @Date: 2020/10/24 15:33
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult analysisCode(String qrCodeUrl);

    /**
     * TODO 范欣宜 添加会员
     * @Author: 范欣宜
     * @Date: 2020/10/26 18:49
     * @param userInfo: 会员
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult staffMemberRegister(TbUserInfo userInfo);

    /**
     * TODO 范欣宜 修改会员信息
     * @Author: 范欣宜
     * @Date: 2020/10/26 18:49
     * @param userInfo: 会员
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult updateStaffMember(TbUserInfo userInfo);

    /**
     * TODO 范欣宜 查询会员
     * @Author: 范欣宜
     * @Date: 2020/10/26 18:49
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult getMember();

    /**
     * TODO 范欣宜 查询会员+分页
     * @Author: 范欣宜
     * @Date: 2020/10/26 18:49
     * @return: com.bw.servercommon.utils.ResponseResult
     **/
    ResponseResult getMemberByPage(Integer currentPage, Integer pageSize);

//       /**
     //     * TODO 范欣宜 上传
     //     * @Author: 范欣宜
     //     * @Date: 2020/10/28 10:55
     //     * @param file:
     //     * @return: com.bw.servercommon.utils.ResponseResult
     //     **/
//    ResponseResult upload(MultipartFile file);

    /**
     * TODO 范欣宜 下载
     * @Author: 范欣宜
     * @Date: 2020/10/28 10:54
     * @param path:
     * @param response:
     * @return: void
     **/
    void download(String path, HttpServletResponse response);


    ResponseResult delMember(Integer id);


    ResponseResult uploadImg(MultipartFile file);

    ResponseResult getMemberById(Integer id);
}
